iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
1
Modern Web

From Django 1.11 to Django 2.1 系列 第 3

Day3 : 建置Project

  • 分享至 

  • xImage
  •  

:今天要來邁入建 Project 的部分囉,有沒有很興奮?!

:沒有

:...什麼?! 看來你對 Django 還是相當陌生,還無法對它產生熱忱!

打從娘胎到現在,你們彼此之間可能才見過幾次面,就像擦肩而過的陌生人一樣,等到下一次再相見之時,在你腦海裡才慢慢浮現出,這個人好眼熟,但是我就是想不起來

這樣一直反覆下去會沒完沒了,也不是個辦法!!

讓我帶你來更了解 Django,我相信你們會對它印象更加深刻^_^

在現實生活中,我們偶爾會對周遭熟悉的人簡稱 ""

:欸,你中午想吃什麼啊?

:不知道,你提一個!

:你想吃飯還是吃麵? 不然我們去吃丹丹好了!

:不要那個好油,我正在減肥!

:那不然騎去火車站吃?

:不要,那個好遠!

然後你馬上心理無限的,那不然你去吃X好了。

那我們對於剛見面的人都會很不自主的稱呼對方全名

如果今天跟 Django 同班,你想要找他搭話,如果講不出它的名字,或是講錯了,說真的都會蠻尷尬的 ^^"

Django is pronounced JANG-oh. Rhymes with FANG-oh. The “D” is silent.

我也曾經叫錯一段時間,導致它跟我生悶氣,時不時跟我報Error

哈哈,題外話,那我們進入今天的主軸** Project **吧!


[正文開始]

Day2 我們提到了啟動虛擬的環境,再開始前我們還是再確認一下 Python是否支援 Django的版本吧!

(ithome_enve) C:\Users\User\Desktop\ithome>python -m django --version
2.1.2

(ithome_enve) C:\Users\User\Desktop\ithome>python --version
Python 3.6.6

確認好 Day2 所說的版本支援關係,我們可以來進行下一個步驟了,建 project!

建 project 的方式很直觀,指令如下
django-admin startproject [projectname]

(ithome_enve) C:\Users\User\Desktop\ithome>django-admin startproject ithome

(ithome_enve) C:\Users\User\Desktop\ithome>cd ithome

(ithome_enve) C:\Users\User\Desktop\ithome>dir ithome
2018/10/03  下午 07:50    <DIR>          .
2018/10/03  下午 07:50    <DIR>          ..
2018/10/03  下午 07:50    <DIR>          ithome
2018/10/03  下午 07:50               553 manage.py

好了!
建完專案,收工!

哈哈,玩笑話^^

建立完成之後,前往該目錄我們可以發現多了一個資料夾 ithomemanage.py
下圖是整個新增完專案的架構

(ithome_enve) C:\Users\User\Desktop\ithome\ithome>tree /F ..
C:\USERS\USER\DESKTOP\ITHOME
├───ithome
│   │   manage.py
│   │
│   └───ithome
│           settings.py
│           urls.py
│           wsgi.py
│           __init__.py
│
└───ithome_enve
...以下省略
  • 外部的資料夾 ithome,因為只是一個容器,所以之後要改名成taiwan_no.1當然也可以
  • manage.py 是將來要操作 Django的一個元件,基於好奇心,你可以把它打開來看,你可以發現os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ithome.settings',這是要將內部的 ithome 資料夾的settings設定為環境變數的操作,觀賞就好,但是千萬不要動到裡面的內容!!
  • 內部的資料夾ithome,這名字就是對應到manage.pyithome.settings,也就是說...,內部的ithome千萬不要動到嘿^^

如果你像我一樣打死不從,試著玩弄Django,更改manage.py及內部ithome的名稱,再去runserver,那麼 Django 馬上報error給你看,因為在 startproject [projectname]之後,Django就已經是 [projectname] 的形狀了。

  • ithome/init.py,看到標準的__init__.py出現,就是在告訴Python,我是一個套件^^,如果你對這個沒什麼概念,可以去看Docs
  • ithome/settings.py,重頭戲來了! settings掌管了整個專案的運作,這會牽涉到後面更多的內容,大家只要先知道,它很重要就好^^
  • ithome/url.py,這個url扮演著橋梁的角色,會根據你所設定的網址去對應到view,這裡聽起來還很抽象,不過大家先有這個觀念即可!
  • ithome/wsgi.py,WSGI則是扮演著web server與web application之間溝通的一個介面(關於這部分我也還在摸,希望能在後半段部分講給大家聽 ^^

建立好專案之後,我們先試著將專案run起來吧!
python manage.py runserver

(ithome_enve) C:\Users\User\Desktop\ithome\ithome>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 03, 2018 - 21:17:48
Django version 2.1.2, using settings 'ithome.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[03/Oct/2018 21:19:24] "GET / HTTP/1.1" 200 16348

看到這個畫面就代表執行成功嚕 ^^
https://ithelp.ithome.com.tw/upload/images/20181003/201118295HDCun0HDm.jpg

如果你想要看到中文介面,那麼可以到ithomo\settings.py進行修改,打開檔案搜尋LANGUAGE_CODE,就可以看到下面這一排設定

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

將 LANGUAGE_CODE = 'en-us' 修改成 'en-TW',然後你就會發現 Django 開始報 Error了,WHY?
因為 Django 1.7 之後,預設的中文要使用 'zh-Hant'來表示,其中 t 代表繁體中文,順帶一提 'zh-Hans' 是簡體中文

既然都來settings了,就一起把TIME_ZONE給設定好吧! 因為預設是UTC,要把它改成Asia/Taipei,這樣之後在寫邏輯處理的時候才能夠兜起來 ^^

所以最後你的設定會變成

LANGUAGE_CODE = 'zh-Hant'

TIME_ZONE = 'Asia/Taipei'

USE_I18N = True

USE_L10N = True

USE_TZ = True

專案的部分大致上就這樣,希望你會漸漸對 Django 產生興趣 ^_^
明天再來繼續講關於App的部分

睡前把 BUG DE完,像是喝一杯熱牛奶一樣,有助於睡眠 From BY


上一篇
Day2 : 安裝 Django 2.1
下一篇
Day4 : 打造Apps跟Django say hello!
系列文
From Django 1.11 to Django 2.1 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
yilun0206
iT邦新手 5 級 ‧ 2020-01-12 22:39:12

您好 請問這階段是要到哪邊去編譯呢?

我要留言

立即登入留言